/*********************************************************************************************************************
* CYT2BL3 Opensourec Library 即（ CYT2BL3 开源库）是一个基于官方 SDK 接口的第三方开源库
* Copyright (c) 2022 SEEKFREE 逐飞科技
*
* 本文件是 CYT2BL3 开源库的一部分
*
* CYT2BL3 开源库 是免费软件
* 您可以根据自由软件基金会发布的 GPL（GNU General Public License，即 GNU通用公共许可证）的条款
* 即 GPL 的第3版（即 GPL3.0）或（您选择的）任何后来的版本，重新发布和/或修改它
*
* 本开源库的发布是希望它能发挥作用，但并未对其作任何的保证
* 甚至没有隐含的适销性或适合特定用途的保证
* 更多细节请参见 GPL
*
* 您应该在收到本开源库的同时收到一份 GPL 的副本
* 如果没有，请参阅<https://www.gnu.org/licenses/>
*
* 额外注明：
* 本开源库使用 GPL3.0 开源许可证协议 以上许可申明为译文版本
* 许可申明英文版在 libraries/doc 文件夹下的 GPL3_permission_statement.txt 文件中
* 许可证副本在 libraries 文件夹下 即该文件夹下的 LICENSE 文件
* 欢迎各位使用并传播本程序 但修改内容时必须保留逐飞科技的版权声明（即本声明）
*
* 文件名称          motor_voice
* 公司名称          成都逐飞科技有限公司
* 版本信息          查看 libraries/doc 文件夹内 version 文件 版本说明
* 开发环境          IAR 9.40.1
* 适用平台          CYT2BL3
* 店铺链接          https://seekfree.taobao.com/
*
* 修改记录
* 日期              作者                备注
* 2025-01-03       pudding            first version
********************************************************************************************************************/
#include "motor_voice.h"

#define VOICE_DATA_LENGTH  8544                                                 // 声音信号长度

const uint16_t voice_data[VOICE_DATA_LENGTH];                                   // 声音存储数组  声音为 16k采样率  数据范围 0 ~ 4095

//-------------------------------------------------------------------------------------------------------------------
// 函数简介     左右电机同步发声
// 参数说明     void
// 返回参数     void
// 使用示例     motor_voice_output();
// 备注信息     该环节纯属整活儿 让电机模拟喇叭输出音频信号 需安装扇叶后音量较为明显 否则需贴紧电机 通过“骨传导”才能听到
//              也可通过此处的音频信号输出效果 判断三相控制是否正常          
//-------------------------------------------------------------------------------------------------------------------
void motor_voice_output(void)
{
    uint16 music_length = VOICE_DATA_LENGTH / 3;                                // 音频信号分三段  分别测试三种不同的回路                                       
    
    uint16 output_data = 0;                                                     // 输出数据计算数组
    
    /************************配置左右电机的三相控制信号************************/
    pwm_init(MOTOR_LEFT_SENSORLESS_A_PHASE_H, 32000, 0);                        // 上桥统一输出 320Khz 的PWM载波
    
    pwm_init(MOTOR_LEFT_SENSORLESS_B_PHASE_H, 32000, 0);                        // 上桥统一输出 320Khz 的PWM载波
    
    pwm_init(MOTOR_LEFT_SENSORLESS_C_PHASE_H, 32000, 0);                        // 上桥统一输出 320Khz 的PWM载波
    
    gpio_init(MOTOR_LEFT_SENSORLESS_A_PHASE_L, GPO, 0, GPO_PUSH_PULL);          // 下桥统一使用GPIO控制
    
    gpio_init(MOTOR_LEFT_SENSORLESS_B_PHASE_L, GPO, 0, GPO_PUSH_PULL);          // 下桥统一使用GPIO控制
    
    gpio_init(MOTOR_LEFT_SENSORLESS_C_PHASE_L, GPO, 0, GPO_PUSH_PULL);          // 下桥统一使用GPIO控制
    
    pwm_init(MOTOR_RIGHT_SENSORLESS_A_PHASE_H, 32000, 0);                       // 上桥统一输出 320Khz 的PWM载波
    
    pwm_init(MOTOR_RIGHT_SENSORLESS_B_PHASE_H, 32000, 0);                       // 上桥统一输出 320Khz 的PWM载波
    
    pwm_init(MOTOR_RIGHT_SENSORLESS_C_PHASE_H, 32000, 0);                       // 上桥统一输出 320Khz 的PWM载波
    
    gpio_init(MOTOR_RIGHT_SENSORLESS_A_PHASE_L, GPO, 0, GPO_PUSH_PULL);         // 下桥统一使用GPIO控制
    
    gpio_init(MOTOR_RIGHT_SENSORLESS_B_PHASE_L, GPO, 0, GPO_PUSH_PULL);         // 下桥统一使用GPIO控制
    
    gpio_init(MOTOR_RIGHT_SENSORLESS_C_PHASE_L, GPO, 0, GPO_PUSH_PULL);         // 下桥统一使用GPIO控制
    /************************配置左右电机的三相控制信号************************/
    
    
    /*************************执行 第一段 声音信号输出*************************/
    // 若第一段 音量低 考虑 C相上桥 控制偏弱 或者 无法控制
    // 若第一段 无声音 考虑 A相上桥 无法控制 或者 B相下桥 无法控制
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_C_PHASE_H, 1000);                        // C相输出 10%占空比 作为固定牵引信号
    
    gpio_set_level(MOTOR_LEFT_SENSORLESS_B_PHASE_L, 1);                         // B相下桥打开
    
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_C_PHASE_H, 1000);                       // C相输出 10%占空比 作为固定牵引信号        
                                                                                
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_B_PHASE_L, 1);                        // B相下桥打开
    
    for(int32 i = 0; i < music_length; i ++)                                    // 循环 第一段 声音信号
    {
        output_data = (uint16)func_limit_ab((((int16)voice_data[i] - 2048) * 2 + 2048), 0, 4096) / 2;   // 计算输出数据 范围 0% ~ 20.48%
   
        pwm_set_duty(MOTOR_LEFT_SENSORLESS_A_PHASE_H, output_data);             // A相上桥输出声音信号的占空比
        
        pwm_set_duty(MOTOR_RIGHT_SENSORLESS_A_PHASE_H, output_data);            // A相上桥输出声音信号的占空比
        
        system_delay_us(62);                                                    // 延时 62 微秒(声音信号为 16k 采样率，数据间隔为 62.5us)
    }
    
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_A_PHASE_H, 0);                           // 第一段声音信号输出完毕 关闭A相上桥
    
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_C_PHASE_H, 0);                           // 第一段声音信号输出完毕 关闭C相上桥
    
    gpio_set_level(MOTOR_LEFT_SENSORLESS_B_PHASE_L, 0);                         // 第一段声音信号输出完毕 关闭B相下桥
    
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_A_PHASE_H, 0);                          // 第一段声音信号输出完毕 关闭A相上桥
    
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_C_PHASE_H, 0);                          // 第一段声音信号输出完毕 关闭C相上桥
    
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_B_PHASE_L, 0);                        // 第一段声音信号输出完毕 关闭B相下桥
    /*************************执行 第一段 声音信号输出*************************/
    
    
    /*************************执行 第二段 声音信号输出*************************/
    // 若第二段 音量低 考虑 A相上桥 控制偏弱 或者 无法控制
    // 若第二段 无声音 考虑 B相上桥 无法控制 或者 C相下桥 无法控制
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_A_PHASE_H, 1000);                        // A相输出 10%占空比 作为固定牵引信号
                                                                                
    gpio_set_level(MOTOR_LEFT_SENSORLESS_C_PHASE_L, 1);                         // C相下桥打开
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_A_PHASE_H, 1000);                       // A相输出 10%占空比 作为固定牵引信号 
                                                                                
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_C_PHASE_L, 1);                        // C相下桥打开
                                                                                
    for(int32 i = 0; i < music_length; i ++)                                    // 循环 第二段 声音信号
    {
        output_data = (uint16)func_limit_ab((((int16)voice_data[i + music_length] - 2048) * 2 + 2048), 0, 4096) / 2;   // 计算输出数据 范围 0% ~ 20.48%
        
        pwm_set_duty(MOTOR_LEFT_SENSORLESS_B_PHASE_H, output_data);             // B相上桥输出声音信号的占空比
                                                                                
        pwm_set_duty(MOTOR_RIGHT_SENSORLESS_B_PHASE_H, output_data);            // B相上桥输出声音信号的占空比
                                                                                
        system_delay_us(62);                                                    // 延时 62 微秒(声音信号为 16k 采样率，数据间隔为 62.5us)
    }
    
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_B_PHASE_H, 0);                           // 第二段声音信号输出完毕 关闭B相上桥
                                                                                
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_A_PHASE_H, 0);                           // 第二段声音信号输出完毕 关闭A相上桥
                                                                                
    gpio_set_level(MOTOR_LEFT_SENSORLESS_C_PHASE_L, 0);                         // 第二段声音信号输出完毕 关闭C相下桥
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_B_PHASE_H, 0);                          // 第二段声音信号输出完毕 关闭B相上桥
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_A_PHASE_H, 0);                          // 第二段声音信号输出完毕 关闭A相上桥
                                                                                
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_C_PHASE_L, 0);                        // 第二段声音信号输出完毕 关闭C相下桥
    
    
    /*************************执行 第三段 声音信号输出*************************/
    // 若第三段 音量低 考虑 B相上桥 控制偏弱 或者 无法控制
    // 若第三段 无声音 考虑 C相上桥 无法控制 或者 A相下桥 无法控制
    
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_B_PHASE_H, 1000);                        // B相输出 10%占空比 作为固定牵引信号
                                                                                
    gpio_set_level(MOTOR_LEFT_SENSORLESS_A_PHASE_L, 1);                         // A相下桥打开
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_B_PHASE_H, 1000);                       // B相输出 10%占空比 作为固定牵引信号 
                                                                                
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_A_PHASE_L, 1);                        // A相下桥打开
                                                                                
    for(int32 i = 0; i < music_length; i ++)                                    // 循环 第三段 声音信号
    {
        output_data = (uint16)func_limit_ab((((int16)voice_data[i + (music_length * 2)] - 2048) * 2 + 2048), 0, 4096) / 2;    // 计算输出数据 范围 0% ~ 20.48%

        pwm_set_duty(MOTOR_LEFT_SENSORLESS_C_PHASE_H, output_data);             // C相上桥输出声音信号的占空比
                                                                                
        pwm_set_duty(MOTOR_RIGHT_SENSORLESS_C_PHASE_H, output_data);            // C相上桥输出声音信号的占空比
                                                                                
        system_delay_us(62);                                                    // 延时 62 微秒(声音信号为 16k 采样率，数据间隔为 62.5us)
    }                                                                           
                                                                                
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_C_PHASE_H, 0);                           // 第三段声音信号输出完毕 关闭C相上桥
                                                                                
    pwm_set_duty(MOTOR_LEFT_SENSORLESS_B_PHASE_H, 0);                           // 第三段声音信号输出完毕 关闭B相上桥
                                                                                
    gpio_set_level(MOTOR_LEFT_SENSORLESS_A_PHASE_L, 0);                         // 第三段声音信号输出完毕 关闭A相下桥
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_C_PHASE_H, 0);                          // 第三段声音信号输出完毕 关闭C相上桥
                                                                                
    pwm_set_duty(MOTOR_RIGHT_SENSORLESS_B_PHASE_H, 0);                          // 第三段声音信号输出完毕 关闭B相上桥
                                                                                
    gpio_set_level(MOTOR_RIGHT_SENSORLESS_A_PHASE_L, 0);                        // 第三段声音信号输出完毕 关闭A相下桥
    /*************************执行 第三段 声音信号输出*************************/    
}


const uint16_t voice_data[VOICE_DATA_LENGTH] = {
    2048, 2048, 2048, 2048, 2049, 2049, 2049, 2049, 2049, 2049,
    2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049,
    2049, 2048, 2048, 2048, 2048, 2047, 2047, 2047, 2046, 2046,
    2046, 2046, 2046, 2046, 2046, 2045, 2045, 2045, 2045, 2044,
    2044, 2044, 2044, 2044, 2043, 2043, 2043, 2043, 2042, 2042,
    2042, 2041, 2041, 2041, 2041, 2041, 2041, 2040, 2040, 2040,
    2040, 2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041,
    2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
    2042, 2042, 2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043,
    2043, 2044, 2043, 2047, 2048, 2047, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
    2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049, 2049, 2048,
    2048, 2048, 2048, 2048, 2049, 2049, 2048, 2049, 2049, 2049,
    2048, 2049, 2049, 2049, 2049, 2049, 2049, 2048, 2048, 2048,
    2048, 2048, 2049, 2049, 2049, 2049, 2049, 2049, 2048, 2049,
    2049, 2049, 2049, 2048, 2048, 2049, 2049, 2048, 2048, 2048,
    2048, 2049, 2049, 2049, 2049, 2049, 2049, 2048, 2049, 2049,
    2049, 2049, 2048, 2048, 2049, 2049, 2049, 2048, 2047, 2048,
    2048, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2046, 2047,
    2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
    2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2046, 2046,
    2046, 2046, 2046, 2046, 2047, 2047, 2047, 2048, 2047, 2047,
    2047, 2047, 2047, 2047, 2048, 2047, 2048, 2048, 2047, 2047,
    2048, 2048, 2048, 2048, 2048, 2049, 2048, 2049, 2048, 2048,
    2048, 2048, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050,
    2050, 2050, 2049, 2050, 2050, 2051, 2051, 2051, 2051, 2051,
    2051, 2050, 2050, 2050, 2051, 2052, 2052, 2052, 2051, 2052,
    2051, 2051, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052,
    2051, 2052, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052,
    2052, 2051, 2051, 2051, 2051, 2051, 2050, 2051, 2051, 2051,
    2051, 2051, 2050, 2050, 2048, 2049, 2048, 2049, 2049, 2049,
    2048, 2049, 2049, 2049, 2048, 2047, 2046, 2046, 2047, 2047,
    2047, 2048, 2048, 2047, 2047, 2047, 2046, 2045, 2044, 2045,
    2046, 2046, 2046, 2045, 2044, 2044, 2043, 2044, 2043, 2043,
    2042, 2043, 2044, 2044, 2045, 2044, 2044, 2042, 2041, 2041,
    2040, 2039, 2040, 2042, 2043, 2045, 2046, 2045, 2044, 2043,
    2043, 2041, 2041, 2041, 2043, 2046, 2048, 2044, 2040, 2034,
    2031, 2035, 2042, 2050, 2055, 2052, 2046, 2035, 2025, 2019,
    2018, 2025, 2035, 2047, 2056, 2060, 2059, 2057, 2045, 2036,
    2028, 2023, 2018, 2021, 2028, 2047, 2067, 2088, 2090, 2080,
    2054, 2024, 2004, 1991, 2007, 2025, 2055, 2071, 2084, 2080,
    2059, 2027, 2003, 1990, 1991, 2009, 2043, 2062, 2096, 2101,
    2093, 2076, 2056, 2044, 2018, 2018, 1996, 2019, 2036, 2073,
    2086, 2082, 2079, 2034, 2032, 2001, 2017, 2008, 2042, 2059,
    2063, 2095, 2054, 2065, 2021, 2026, 2016, 2021, 2033, 2075,
    2072, 2069, 2073, 2057, 2058, 2044, 2055, 2036, 2024, 2049,
    2052, 2046, 2041, 2038, 2026, 2046, 2078, 2053, 2065, 2021,
    2020, 2003, 2059, 2077, 2108, 2044, 2035, 1998, 1998, 2065,
    2085, 2079, 2081, 2010, 2045, 2018, 2005, 2083, 2070, 2078,
    2078, 2049, 2011, 2020, 1994, 2061, 2087, 2044, 2096, 2040,
    2106, 2005, 2025, 2017, 2059, 2031, 2074, 2034, 2049, 2038,
    2097, 2150, 1996, 2018, 1986, 1978, 2070, 2109, 2087, 2083,
    2020, 2029, 2070, 2011, 2058, 2053, 2034, 2066, 2016, 2058,
    2066, 2053, 2043, 2100, 2026, 2076, 2047, 2017, 1989, 1999,
    2119, 2083, 2115, 2061, 2058, 2029, 1981, 2044, 2018, 2061,
    2039, 2129, 2083, 2079, 2053, 2052, 1953, 2042, 2000, 2058,
    2114, 2098, 2150, 2016, 1983, 2021, 2020, 2068, 2050, 2028,
    2115, 2086, 2086, 2063, 1966, 2028, 1988, 2105, 2027, 2162,
    2038, 1985, 2182, 1977, 2007, 1990, 2097, 1995, 2164, 2069,
    2077, 2052, 1987, 1970, 2053, 2031, 2109, 2179, 2063, 1959,
    2037, 1969, 2055, 2030, 2146, 2087, 2040, 2084, 2005, 1995,
    1950, 2110, 2140, 2084, 2023, 1993, 2008, 2151, 1998, 2066,
    2029, 2015, 2138, 2058, 1945, 2074, 2051, 2009, 2244, 1952,
    2066, 1977, 1966, 2126, 2093, 2067, 2005, 2080, 1998, 2147,
    1982, 2104, 2010, 2032, 1985, 2071, 2051, 2098, 2118, 2023,
    2123, 1964, 1986, 2028, 2002, 2188, 1990, 2108, 2044, 2162,
    1901, 2035, 1955, 2100, 2102, 2146, 2137, 1964, 1943, 2001,
    2075, 2032, 2073, 2069, 2195, 2056, 2109, 1903, 2003, 1883,
    2190, 1949, 2286, 2049, 2154, 1959, 1978, 2015, 2035, 1981,
    2137, 1992, 2283, 1921, 2093, 1947, 2129, 2062, 1926, 2129,
    2005, 2138, 1997, 2013, 2141, 2100, 2008, 2003, 1990, 2111,
    1973, 2093, 2138, 2110, 2002, 1984, 2036, 2048, 2011, 2013,
    2140, 2138, 2085, 2009, 1998, 1939, 2028, 2114, 1935, 2271,
    2031, 2100, 1989, 2021, 1948, 2091, 2008, 2085, 2121, 2008,
    2118, 2035, 1935, 2081, 1952, 2115, 2102, 2119, 2069, 2027,
    2009, 1912, 2044, 2039, 2074, 2182, 1991, 2213, 2004, 1996,
    1946, 2035, 1863, 2173, 2110, 2159, 2164, 1939, 1955, 2051,
    1966, 2176, 1880, 2084, 2177, 2040, 2149, 1911, 2110, 1874,
    2101, 1990, 2042, 2178, 2013, 2140, 2126, 1972, 1932, 2020,
    1916, 2165, 2010, 2083, 2158, 2027, 2061, 2033, 2015, 1952,
    2038, 2062, 2047, 2067, 2032, 2039, 2084, 2047, 2135, 1922,
    2078, 1986, 2130, 1963, 2019, 2075, 2046, 2061, 2042, 2085,
    2036, 1926, 2047, 2147, 2034, 2032, 2050, 2067, 2078, 1951,
    1993, 2024, 2045, 2109, 2123, 2044, 2023, 2030, 1989, 2076,
    1899, 2084, 2079, 1986, 2206, 1921, 2216, 1960, 1945, 2093,
    1954, 2040, 2081, 2080, 2054, 2047, 1999, 2057, 1936, 2036,
    2036, 2125, 2074, 2042, 2004, 2052, 1954, 2028, 2079, 2061,
    2078, 2010, 2096, 2003, 2012, 1998, 1999, 2104, 2066, 2027,
    2112, 2078, 1993, 1978, 1984, 2060, 2020, 2111, 2008, 2137,
    2004, 2007, 2091, 1972, 2053, 2003, 2087, 2069, 1970, 2033,
    1992, 2091, 2077, 2102, 2092, 1989, 1940, 1957, 1999, 2091,
    2063, 2073, 2163, 2033, 2050, 2010, 1972, 1973, 2075, 1989,
    2095, 2084, 2078, 2075, 2034, 1987, 1993, 1988, 1933, 2099,
    2078, 2082, 2102, 2023, 2034, 2011, 1994, 2034, 2056, 2030,
    2006, 2100, 2020, 2094, 1996, 2082, 2057, 2032, 1989, 2032,
    2062, 2051, 2016, 2032, 2044, 2031, 2053, 2082, 2091, 2046,
    2030, 1954, 2014, 1984, 2050, 2107, 2065, 2094, 2095, 1989,
    2034, 1934, 2005, 1993, 2020, 2112, 2100, 2111, 2054, 2073,
    2030, 1984, 2024, 1983, 2011, 2059, 2063, 2072, 2059, 2054,
    2028, 2080, 2034, 2057, 2028, 2063, 2090, 2079, 2020, 2074,
    2059, 2072, 2029, 2051, 2117, 2069, 2098, 2044, 2075, 2018,
    1997, 2038, 2054, 2076, 2071, 2077, 2077, 2075, 2026, 2019,
    2089, 2043, 2071, 2084, 2073, 2064, 2013, 2008, 2085, 2011,
    2060, 2059, 2055, 2051, 2006, 2016, 1977, 1972, 1966, 1950,
    1995, 2021, 1963, 1960, 1901, 1915, 1875, 1866, 1898, 1895,
    1942, 1943, 1959, 1961, 1915, 1905, 1902, 1913, 1958, 1974,
    2002, 2055, 2051, 2081, 2109, 2142, 2171, 2183, 2195, 2244,
    2278, 2289, 2312, 2308, 2325, 2325, 2304, 2347, 2363, 2354,
    2356, 2338, 2346, 2342, 2277, 2262, 2244, 2211, 2188, 2150,
    2126, 2101, 2058, 2012, 1990, 1946, 1929, 1893, 1849, 1827,
    1805, 1769, 1711, 1670, 1629, 1604, 1603, 1593, 1614, 1625,
    1624, 1631, 1627, 1648, 1666, 1671, 1698, 1709, 1743, 1749,
    1784, 1813, 1859, 1902, 1955, 2002, 2071, 2127, 2180, 2214,
    2277, 2307, 2362, 2372, 2385, 2398, 2402, 2395, 2384, 2367,
    2359, 2349, 2346, 2354, 2359, 2350, 2347, 2325, 2306, 2294,
    2260, 2238, 2226, 2191, 2181, 2165, 2156, 2159, 2146, 2138,
    2126, 2114, 2119, 2127, 2122, 2117, 2098, 2081, 2069, 2044,
    2013, 1994, 1940, 1925, 1877, 1830, 1808, 1778, 1762, 1749,
    1739, 1723, 1717, 1698, 1690, 1680, 1674, 1671, 1678, 1684,
    1714, 1737, 1777, 1812, 1850, 1901, 1950, 1997, 2050, 2099,
    2151, 2199, 2235, 2251, 2275, 2284, 2294, 2311, 2298, 2297,
    2289, 2281, 2295, 2287, 2292, 2279, 2266, 2266, 2260, 2252,
    2249, 2241, 2232, 2228, 2220, 2216, 2219, 2215, 2213, 2219,
    2202, 2206, 2198, 2196, 2203, 2191, 2195, 2181, 2184, 2167,
    2148, 2125, 2090, 2062, 2020, 1979, 1950, 1894, 1855, 1817,
    1772, 1751, 1703, 1674, 1648, 1626, 1613, 1602, 1607, 1599,
    1612, 1619, 1640, 1654, 1675, 1699, 1733, 1768, 1826, 1862,
    1927, 1961, 2022, 2076, 2112, 2155, 2183, 2212, 2243, 2257,
    2276, 2293, 2306, 2315, 2316, 2321, 2311, 2323, 2309, 2309,
    2297, 2276, 2274, 2260, 2250, 2236, 2220, 2200, 2202, 2179,
    2186, 2179, 2191, 2195, 2200, 2214, 2216, 2234, 2221, 2247,
    2235, 2235, 2211, 2218, 2211, 2214, 2177, 2167, 2144, 2122,
    2092, 2051, 2020, 1969, 1918, 1863, 1810, 1766, 1706, 1662,
    1621, 1584, 1555, 1540, 1544, 1548, 1551, 1576, 1591, 1618,
    1649, 1684, 1715, 1740, 1778, 1820, 1861, 1908, 1947, 2010,
    2056, 2099, 2151, 2196, 2252, 2283, 2314, 2335, 2351, 2361,
    2369, 2364, 2354, 2345, 2335, 2311, 2292, 2280, 2268, 2253,
    2232, 2212, 2219, 2202, 2208, 2197, 2201, 2195, 2191, 2202,
    2195, 2198, 2181, 2185, 2173, 2171, 2159, 2161, 2156, 2149,
    2150, 2150, 2153, 2144, 2139, 2133, 2125, 2097, 2070, 2048,
    2007, 1963, 1906, 1870, 1809, 1772, 1716, 1682, 1647, 1624,
    1604, 1595, 1591, 1595, 1608, 1620, 1643, 1657, 1697, 1714,
    1742, 1762, 1793, 1835, 1866, 1896, 1944, 1983, 2037, 2080,
    2129, 2174, 2213, 2252, 2277, 2292, 2312, 2327, 2337, 2325,
    2324, 2311, 2296, 2287, 2259, 2248, 2226, 2212, 2199, 2196,
    2194, 2198, 2206, 2205, 2210, 2216, 2224, 2220, 2220, 2216,
    2218, 2200, 2187, 2182, 2172, 2173, 2156, 2165, 2165, 2168,
    2170, 2175, 2170, 2168, 2162, 2144, 2124, 2094, 2050, 2012,
    1960, 1906, 1856, 1798, 1743, 1707, 1665, 1641, 1619, 1604,
    1602, 1589, 1598, 1612, 1632, 1650, 1675, 1701, 1731, 1757,
    1795, 1827, 1860, 1888, 1936, 1976, 2018, 2050, 2099, 2144,
    2179, 2212, 2256, 2289, 2299, 2314, 2312, 2328, 2314, 2311,
    2301, 2293, 2268, 2251, 2229, 2205, 2202, 2180, 2171, 2155,
    2148, 2151, 2161, 2173, 2184, 2196, 2204, 2205, 2207, 2217,
    2215, 2220, 2211, 2208, 2204, 2209, 2217, 2214, 2211, 2212,
    2199, 2195, 2163, 2150, 2119, 2082, 2039, 1999, 1951, 1907,
    1854, 1807, 1761, 1717, 1690, 1650, 1628, 1606, 1603, 1592,
    1604, 1613, 1637, 1647, 1673, 1684, 1718, 1729, 1764, 1789,
    1813, 1841, 1879, 1919, 1965, 2012, 2071, 2119, 2167, 2217,
    2266, 2307, 2337, 2357, 2371, 2373, 2369, 2358, 2338, 2321,
    2294, 2269, 2243, 2222, 2199, 2188, 2167, 2158, 2149, 2153,
    2146, 2163, 2161, 2176, 2179, 2186, 2194, 2191, 2191, 2194,
    2190, 2182, 2182, 2178, 2184, 2184, 2175, 2180, 2165, 2166,
    2137, 2128, 2099, 2075, 2043, 2008, 1969, 1928, 1880, 1842,
    1788, 1751, 1721, 1686, 1663, 1638, 1635, 1631, 1635, 1643,
    1657, 1667, 1688, 1698, 1734, 1745, 1784, 1800, 1833, 1858,
    1905, 1941, 1993, 2027, 2081, 2121, 2159, 2213, 2245, 2284,
    2306, 2328, 2340, 2331, 2341, 2327, 2311, 2283, 2263, 2236,
    2206, 2195, 2171, 2162, 2156, 2157, 2154, 2162, 2162, 2176,
    2172, 2182, 2183, 2179, 2186, 2187, 2188, 2188, 2188, 2191,
    2187, 2188, 2191, 2191, 2191, 2182, 2177, 2151, 2141, 2111,
    2077, 2035, 1997, 1949, 1905, 1859, 1827, 1787, 1758, 1721,
    1700, 1673, 1664, 1659, 1649, 1644, 1648, 1664, 1670, 1691,
    1703, 1730, 1751, 1779, 1818, 1849, 1906, 1939, 2001, 2032,
    2092, 2135, 2174, 2210, 2242, 2270, 2283, 2298, 2298, 2296,
    2293, 2278, 2263, 2247, 2228, 2218, 2191, 2180, 2163, 2163,
    2155, 2153, 2157, 2160, 2165, 2174, 2177, 2179, 2181, 2185,
    2186, 2190, 2190, 2191, 2200, 2200, 2203, 2208, 2210, 2211,
    2215, 2206, 2196, 2180, 2161, 2131, 2097, 2060, 2021, 1980,
    1939, 1896, 1871, 1834, 1809, 1775, 1756, 1729, 1718, 1695,
    1685, 1674, 1680, 1674, 1688, 1706, 1728, 1764, 1798, 1842,
    1886, 1935, 1989, 2038, 2083, 2126, 2157, 2198, 2211, 2240,
    2245, 2265, 2265, 2272, 2275, 2272, 2279, 2272, 2271, 2266,
    2261, 2249, 2245, 2226, 2221, 2200, 2192, 2169, 2167, 2152,
    2148, 2147, 2141, 2146, 2151, 2161, 2154, 2171, 2169, 2177,
    2174, 2175, 2170, 2161, 2154, 2129, 2114, 2082, 2055, 2022,
    1987, 1951, 1923, 1897, 1869, 1848, 1832, 1820, 1806, 1794,
    1778, 1770, 1757, 1749, 1742, 1734, 1736, 1743, 1758, 1775,
    1800, 1838, 1873, 1918, 1954, 1996, 2026, 2069, 2090, 2122,
    2132, 2163, 2167, 2187, 2186, 2202, 2207, 2214, 2223, 2223,
    2235, 2228, 2232, 2223, 2225, 2208, 2215, 2194, 2197, 2181,
    2190, 2177, 2177, 2178, 2179, 2185, 2186, 2194, 2199, 2209,
    2214, 2221, 2219, 2214, 2203, 2195, 2165, 2141, 2109, 2076,
    2043, 2006, 1975, 1938, 1920, 1885, 1868, 1847, 1827, 1819,
    1803, 1796, 1772, 1770, 1749, 1750, 1737, 1744, 1750, 1775,
    1790, 1828, 1851, 1894, 1933, 1964, 1997, 2025, 2056, 2070,
    2096, 2101, 2125, 2130, 2146, 2153, 2174, 2183, 2201, 2209,
    2229, 2230, 2223, 2223, 2213, 2203, 2195, 2178, 2175, 2165,
    2158, 2161, 2152, 2147, 2135, 2134, 2121, 2120, 2116, 2113,
    2121, 2112, 2115, 2111, 2107, 2091, 2086, 2066, 2054, 2028,
    2008, 1993, 1965, 1946, 1926, 1910, 1886, 1884, 1870, 1872,
    1858, 1852, 1840, 1838, 1829, 1835, 1842, 1856, 1869, 1872,
    1901, 1923, 1949, 1958, 1972, 1983, 1991, 2010, 2033, 2035,
    2043, 2053, 2064, 2087, 2101, 2117, 2129, 2144, 2154, 2157,
    2159, 2159, 2152, 2157, 2162, 2171, 2168, 2181, 2195, 2198,
    2212, 2202, 2206, 2198, 2198, 2200, 2191, 2171, 2168, 2140,
    2135, 2125, 2118, 2099, 2091, 2067, 2052, 2038, 2014, 1991,
    1967, 1945, 1926, 1924, 1912, 1914, 1888, 1889, 1878, 1874,
    1870, 1864, 1859, 1858, 1861, 1877, 1889, 1883, 1901, 1907,
    1927, 1941, 1950, 1976, 1997, 2000, 2025, 2037, 2056, 2063,
    2073, 2100, 2097, 2117, 2120, 2139, 2143, 2159, 2157, 2168,
    2167, 2174, 2171, 2180, 2169, 2168, 2164, 2163, 2157, 2144,
    2137, 2122, 2104, 2085, 2081, 2084, 2082, 2066, 2079, 2068,
    2068, 2052, 2045, 2028, 2014, 1998, 1988, 2008, 1983, 1991,
    1985, 1990, 1974, 1987, 1972, 1971, 1967, 1948, 1966, 1953,
    1961, 1952, 1984, 1978, 1996, 1987, 2005, 1999, 1995, 2019,
    2012, 2007, 2030, 2034, 2047, 2064, 2056, 2086, 2079, 2080,
    2075, 2085, 2072, 2087, 2064, 2073, 2066, 2080, 2083, 2082,
    2094, 2101, 2091, 2108, 2089, 2089, 2090, 2056, 2070, 2065,
    2062, 2045, 2069, 2071, 2078, 2101, 2099, 2096, 2070, 2084,
    2034, 2044, 2021, 2008, 2029, 2042, 2046, 2085, 2046, 2042,
    2071, 2044, 2066, 2037, 2026, 2003, 2010, 2007, 2070, 2032,
    2058, 2035, 2058, 2057, 2049, 2058, 2053, 2029, 2012, 2041,
    2053, 2032, 2075, 2033, 2067, 2083, 2046, 2045, 2059, 2075,
    2059, 2082, 2053, 2068, 2068, 2058, 2079, 2061, 2084, 2052,
    2040, 2045, 2078, 2048, 2062, 2059, 2062, 2066, 2054, 2055,
    2043, 2082, 2039, 2055, 2065, 2045, 2035, 2087, 2047, 2061,
    2055, 2070, 2050, 2061, 2063, 2025, 2033, 1999, 2047, 2068,
    2022, 2094, 2045, 2068, 2095, 2035, 2075, 2035, 2041, 2028,
    2049, 2062, 2059, 2055, 2089, 2076, 2078, 2089, 2036, 2054,
    2001, 2075, 2000, 2046, 2072, 2020, 2090, 2065, 2070, 2053,
    2039, 2036, 2026, 2031, 2050, 2046, 2046, 2061, 2074, 2049,
    2096, 2055, 2064, 2084, 2043, 2048, 2048, 1991, 2081, 1994,
    2093, 2078, 2046, 2072, 2043, 2004, 2052, 2031, 2019, 2044,
    1996, 2074, 2046, 2066, 2094, 2027, 2079, 2061, 2034, 2036,
    2066, 1998, 2052, 2037, 2053, 2090, 2062, 2073, 2043, 2021,
    2069, 2032, 1991, 2025, 2052, 2047, 2047, 2107, 2036, 2077,
    2047, 2025, 2047, 2066, 2031, 2056, 2038, 2042, 2035, 2086,
    2086, 2005, 2094, 2009, 2019, 2037, 2044, 2010, 2096, 2027,
    2067, 2021, 2036, 2061, 1992, 2029, 2026, 2027, 2071, 2053,
    2043, 2057, 2080, 2019, 2050, 2044, 2052, 2031, 2030, 2067,
    2042, 2074, 2038, 2041, 2026, 2026, 2044, 2059, 2044, 2032,
    2046, 2061, 2032, 2015, 2076, 2019, 2034, 1988, 2030, 2043,
    2049, 2085, 1994, 2085, 2044, 2022, 2020, 2083, 1994, 2086,
    1991, 2078, 2053, 2050, 2038, 2030, 2019, 2040, 2051, 2041,
    2058, 2011, 2048, 2033, 2044, 2035, 2058, 2043, 2025, 2048,
    2027, 2070, 2040, 2064, 2037, 2006, 2080, 2029, 2033, 2078,
    2043, 2035, 2047, 2007, 2065, 2037, 2067, 1992, 2075, 2041,
    2070, 2021, 2072, 2039, 2044, 2056, 2035, 2038, 2071, 2036,
    2043, 2067, 2018, 2096, 2019, 2023, 2067, 2009, 2077, 2018,
    2015, 2095, 2024, 2060, 2018, 2090, 2017, 2031, 2032, 2050,
    2037, 2070, 2051, 2055, 2065, 2027, 2039, 2066, 2040, 2052,
    2032, 2038, 2069, 2034, 2050, 2044, 2074, 2011, 2064, 2050,
    2048, 2019, 2074, 2009, 2036, 2075, 2044, 2038, 2069, 2019,
    2032, 2088, 2047, 2008, 2059, 2064, 2016, 2075, 2051, 2057,
    2077, 2078, 1985, 2094, 2016, 2075, 2037, 2042, 2045, 2038,
    2028, 2049, 2059, 2051, 2041, 2034, 2048, 2036, 2026, 2077,
    2009, 2088, 2022, 2072, 2038, 2082, 2030, 2041, 2051, 2053,
    2008, 2081, 2012, 2054, 2018, 2082, 2027, 2087, 2044, 2041,
    2020, 2038, 2063, 2041, 2051, 2060, 2046, 2081, 2041, 2042,
    2078, 2021, 2050, 2031, 2045, 2072, 2036, 2069, 2011, 2080,
    2036, 2040, 2064, 2018, 2060, 2058, 2043, 2046, 2051, 2053,
    2026, 2063, 2018, 2094, 2014, 2101, 2009, 2079, 2028, 2046,
    2036, 2058, 2034, 2083, 2010, 2089, 2022, 2068, 2048, 2038,
    2056, 2032, 2051, 2056, 2044, 2047, 2071, 2045, 2038, 2051,
    2040, 2055, 2063, 2072, 1997, 2094, 2011, 2046, 2040, 2071,
    2053, 2059, 2068, 2024, 2064, 2020, 2058, 2012, 2085, 2043,
    2051, 2065, 2020, 2088, 2020, 2060, 2036, 2055, 2035, 2038,
    2073, 2022, 2085, 2028, 2047, 2032, 2055, 2052, 2049, 2047,
    2062, 2051, 2041, 2034, 2032, 2048, 2054, 2066, 2024, 2099,
    2008, 2066, 2027, 2045, 2043, 2079, 2000, 2098, 2055, 2042,
    2049, 2052, 2042, 2050, 2058, 2025, 2071, 2040, 2058, 2067,
    2034, 2056, 2049, 2032, 2072, 2047, 2059, 2069, 2058, 2028,
    2071, 2039, 2052, 2070, 2042, 2039, 2083, 2027, 2070, 2041,
    2028, 2071, 2050, 2044, 2085, 2045, 2065, 2063, 2031, 2048,
    2073, 2043, 2042, 2042, 2058, 2039, 2080, 2013, 2082, 2029,
    2071, 2043, 2066, 2046, 2068, 2006, 2061, 2062, 2034, 2059,
    2070, 2038, 2050, 2050, 2024, 2057, 2034, 2055, 2051, 2058,
    2053, 2062, 2035, 2054, 2032, 2040, 2056, 2049, 2056, 2071,
    2049, 2029, 2062, 2033, 2027, 2049, 2048, 2036, 2084, 2033,
    2063, 2029, 2057, 2052, 2010, 2067, 2051, 2049, 2069, 2045,
    2062, 2017, 2054, 2008, 2073, 2050, 2068, 2031, 2045, 2032,
    2052, 2048, 2029, 2078, 2044, 2034, 2057, 2031, 2084, 2032,
    2012, 2058, 2001, 2070, 2043, 2072, 2043, 2054, 2025, 2042,
    2042, 2058, 2033, 2070, 2015, 2065, 2029, 2061, 2054, 2042,
    2009, 2047, 2051, 2035, 2066, 2033, 2065, 2031, 2035, 2056,
    2047, 2055, 2029, 2012, 2047, 2052, 2052, 2062, 2039, 2046,
    2031, 2023, 2058, 2064, 2049, 2041, 2012, 2049, 2042, 2087,
    2029, 2062, 2028, 2019, 2036, 2041, 2055, 2080, 2031, 2033,
    2040, 2040, 2054, 2045, 2028, 2054, 2058, 2015, 2073, 2020,
    2062, 2016, 2049, 2016, 2072, 2051, 2043, 2043, 2041, 2044,
    2029, 2037, 2046, 2038, 2046, 2037, 2031, 2064, 2035, 2067,
    2021, 2047, 2026, 2011, 2080, 2054, 2056, 2047, 2038, 2005,
    2028, 2067, 2056, 2046, 2055, 2021, 2030, 2039, 2071, 2039,
    2043, 2060, 2014, 2022, 2077, 2022, 2058, 2029, 2017, 2010,
    2046, 2021, 2021, 2042, 2024, 2057, 2036, 2046, 2047, 2057,
    2040, 2042, 2036, 2045, 2053, 2026, 2034, 2087, 2027, 2034,
    2020, 2041, 2046, 2054, 2033, 2009, 2045, 2029, 1997, 2031,
    2020, 2012, 2027, 1999, 2070, 2065, 2046, 2051, 2023, 2061,
    2057, 2036, 2020, 2026, 2014, 2020, 2007, 2038, 2026, 2038,
    2038, 2003, 2028, 2020, 2013, 1997, 2012, 2031, 2001, 2008,
    2007, 2003, 2049, 2032, 2031, 2011, 2036, 2039, 2048, 2031,
    2025, 2011, 1999, 2000, 2007, 2049, 2035, 2012, 2010, 2011,
    2044, 2041, 2024, 2026, 2003, 2041, 2020, 2020, 2036, 2013,
    2025, 2011, 2055, 2081, 2087, 2061, 2036, 2051, 2072, 2060,
    2069, 2056, 2060, 2026, 2018, 1969, 2006, 1984, 1979, 1993,
    1970, 1974, 1947, 1919, 1940, 1951, 1970, 1939, 1939, 1934,
    1939, 1957, 1943, 1963, 1953, 1945, 1952, 1946, 1976, 2001,
    2009, 2036, 2044, 2100, 2113, 2188, 2243, 2305, 2341, 2394,
    2410, 2492, 2526, 2533, 2552, 2520, 2469, 2424, 2355, 2293,
    2290, 2197, 2093, 1962, 1932, 1794, 1786, 1749, 1722, 1709,
    1675, 1613, 1657, 1703, 1728, 1750, 1831, 1885, 1861, 1867,
    1802, 1887, 1934, 1935, 1923, 1878, 1805, 1744, 1734, 1812,
    1844, 1914, 1837, 1879, 1963, 2075, 2177, 2321, 2495, 2544,
    2605, 2636, 2703, 2749, 2827, 2792, 2795, 2693, 2617, 2433,
    2362, 2284, 2175, 2017, 1904, 1761, 1636, 1596, 1494, 1544,
    1545, 1558, 1545, 1544, 1628, 1691, 1805, 1919, 1989, 2069,
    2088, 2066, 2112, 2092, 2128, 2100, 2048, 1973, 1869, 1825,
    1745, 1799, 1795, 1815, 1805, 1801, 1866, 1991, 2109, 2273,
    2417, 2573, 2602, 2668, 2752, 2845, 2901, 2911, 2863, 2782,
    2712, 2566, 2476, 2377, 2257, 2102, 1945, 1811, 1691, 1572,
    1553, 1553, 1550, 1531, 1509, 1551, 1591, 1686, 1739, 1846,
    1928, 2027, 2074, 2075, 2125, 2115, 2128, 2106, 2061, 2011,
    1887, 1823, 1771, 1716, 1696, 1622, 1594, 1636, 1635, 1729,
    1788, 1944, 2094, 2228, 2426, 2537, 2677, 2788, 2834, 2921,
    2959, 2914, 2914, 2816, 2755, 2584, 2438, 2316, 2142, 2050,
    1881, 1757, 1635, 1564, 1538, 1545, 1537, 1560, 1540, 1565,
    1635, 1719, 1837, 1900, 1987, 2085, 2091, 2139, 2142, 2121,
    2162, 2068, 2006, 1904, 1865, 1789, 1713, 1623, 1610, 1575,
    1558, 1571, 1630, 1788, 1835, 1957, 2152, 2331, 2487, 2612,
    2695, 2819, 2880, 2885, 2930, 2909, 2892, 2765, 2635, 2525,
    2394, 2275, 2087, 1951, 1881, 1719, 1634, 1599, 1581, 1626,
    1576, 1574, 1619, 1644, 1711, 1792, 1935, 1981, 2017, 2073,
    2144, 2157, 2175, 2085, 2097, 2025, 1953, 1864, 1832, 1755,
    1673, 1592, 1540, 1590, 1610, 1645, 1712, 1864, 1989, 2127,
    2309, 2444, 2598, 2711, 2770, 2846, 2883, 2879, 2896, 2823,
    2749, 2608, 2454, 2341, 2202, 2077, 1908, 1713, 1667, 1598,
    1557, 1499, 1462, 1467, 1456, 1483, 1538, 1657, 1702, 1801,
    1883, 1985, 2025, 2066, 2139, 2127, 2117, 2031, 1942, 1935,
    1897, 1799, 1727, 1618, 1578, 1549, 1510, 1570, 1642, 1717,
    1795, 1922, 2114, 2270, 2451, 2576, 2666, 2812, 2802, 2883,
    2901, 2901, 2883, 2759, 2648, 2513, 2387, 2243, 2090, 1952,
    1824, 1673, 1598, 1560, 1544, 1493, 1451, 1482, 1518, 1560,
    1640, 1713, 1868, 1914, 1998, 2072, 2132, 2210, 2194, 2149,
    2154, 2083, 2014, 1985, 1908, 1832, 1744, 1664, 1609, 1603,
    1659, 1708, 1791, 1856, 1999, 2136, 2288, 2453, 2612, 2701,
    2789, 2857, 2906, 2943, 2950, 2905, 2837, 2699, 2592, 2443,
    2325, 2156, 2047, 1889, 1788, 1645, 1596, 1589, 1505, 1451,
    1460, 1467, 1551, 1609, 1641, 1775, 1832, 1925, 1989, 2056,
    2118, 2129, 2090, 2091, 2025, 2018, 1933, 1889, 1797, 1722,
    1622, 1593, 1582, 1628, 1681, 1697, 1790, 1963, 2044, 2217,
    2382, 2513, 2609, 2675, 2766, 2853, 2845, 2828, 2800, 2761,
    2641, 2522, 2374, 2274, 2159, 1997, 1862, 1774, 1668, 1619,
    1544, 1496, 1483, 1462, 1494, 1544, 1612, 1666, 1742, 1826,
    1946, 2018, 2069, 2107, 2129, 2137, 2140, 2068, 2056, 2004,
    1950, 1875, 1760, 1722, 1706, 1680, 1700, 1715, 1779, 1859,
    1972, 2070, 2220, 2357, 2442, 2517, 2661, 2733, 2775, 2749,
    2760, 2789, 2737, 2616, 2521, 2427, 2340, 2211, 2065, 1980,
    1886, 1791, 1724, 1644, 1612, 1587, 1534, 1572, 1598, 1658,
    1648, 1695, 1830, 1926, 1943, 1980, 2001, 2058, 2074, 2073,
    2004, 1983, 1987, 1926, 1852, 1779, 1763, 1750, 1723, 1764,
    1766, 1836, 1903, 2049, 2118, 2234, 2353, 2441, 2543, 2652,
    2675, 2734, 2737, 2732, 2735, 2686, 2602, 2491, 2358, 2301,
    2193, 2017, 1938, 1812, 1764, 1698, 1550, 1512, 1521, 1473,
    1492, 1476, 1545, 1593, 1627, 1724, 1833, 1869, 1917, 1957,
    1993, 2041, 2070, 1985, 1997, 2012, 1993, 1905, 1842, 1835,
    1824, 1807, 1806, 1850, 1887, 1948, 2058, 2127, 2243, 2320,
    2402, 2490, 2588, 2634, 2646, 2675, 2691, 2670, 2670, 2554,
    2483, 2387, 2297, 2234, 2087, 2000, 1910, 1855, 1778, 1701,
    1639, 1620, 1586, 1587, 1578, 1642, 1639, 1691, 1752, 1831,
    1899, 1901, 1935, 1972, 1996, 2035, 1987, 1973, 1976, 1936,
    1932, 1868, 1838, 1840, 1799, 1846, 1856, 1906, 1942, 2040,
    2118, 2198, 2319, 2356, 2428, 2499, 2580, 2645, 2599, 2613,
    2627, 2667, 2567, 2487, 2409, 2340, 2278, 2182, 2064, 1986,
    1924, 1819, 1784, 1702, 1676, 1609, 1594, 1600, 1647, 1634,
    1620, 1732, 1788, 1859, 1836, 1881, 1897, 1960, 1963, 1949,
    1926, 1931, 1911, 1932, 1888, 1830, 1870, 1832, 1882, 1910,
    1922, 2006, 2070, 2142, 2258, 2335, 2394, 2455, 2506, 2608,
    2630, 2609, 2609, 2631, 2647, 2587, 2438, 2396, 2353, 2252,
    2160, 2051, 1985, 1927, 1822, 1780, 1714, 1658, 1642, 1606,
    1607, 1638, 1609, 1649, 1683, 1786, 1828, 1817, 1868, 1888,
    1941, 1966, 1937, 1941, 1938, 1934, 1951, 1906, 1896, 1861,
    1892, 1905, 1930, 1941, 2006, 2062, 2148, 2232, 2286, 2334,
    2399, 2483, 2542, 2541, 2561, 2580, 2587, 2613, 2545, 2459,
    2412, 2347, 2280, 2213, 2115, 2028, 1954, 1906, 1844, 1773,
    1697, 1691, 1664, 1644, 1659, 1612, 1661, 1720, 1782, 1791,
    1808, 1839, 1899, 1902, 1933, 1955, 1951, 1936, 1935, 2000,
    1960, 1924, 1915, 1972, 1972, 1994, 1984, 2046, 2136, 2223,
    2257, 2286, 2325, 2415, 2468, 2474, 2500, 2514, 2534, 2539,
    2528, 2479, 2418, 2385, 2306, 2252, 2196, 2099, 2062, 1971,
    1940, 1889, 1812, 1743, 1726, 1699, 1691, 1667, 1639, 1645,
    1712, 1771, 1755, 1739, 1794, 1822, 1835, 1834, 1865, 1853,
    1861, 1881, 1880, 1893, 1851, 1903, 1923, 1926, 1964, 1979,
    2056, 2147, 2200, 2249, 2298, 2348, 2441, 2459, 2487, 2527,
    2528, 2546, 2556, 2531, 2496, 2480, 2389, 2333, 2271, 2240,
    2147, 2093, 1992, 1953, 1916, 1823, 1758, 1729, 1690, 1675,
    1656, 1600, 1631, 1654, 1706, 1697, 1698, 1727, 1764, 1804,
    1801, 1821, 1864, 1889, 1898, 1933, 1921, 1967, 1983, 2038,
    2013, 2053, 2120, 2160, 2198, 2224, 2283, 2341, 2364, 2337,
    2391, 2415, 2444, 2395, 2376, 2408, 2403, 2356, 2306, 2276,
    2249, 2208, 2157, 2096, 2090, 2049, 2015, 1942, 1938, 1894,
    1875, 1822, 1804, 1804, 1771, 1748, 1764, 1767, 1790, 1793,
    1767, 1808, 1805, 1836, 1862, 1843, 1885, 1923, 1953, 1972,
    1980, 1996, 2057, 2069, 2082, 2097, 2154, 2172, 2188, 2223,
    2232, 2250, 2254, 2246, 2240, 2242, 2229, 2234, 2208, 2220,
    2201, 2180, 2169, 2146, 2124, 2138, 2092, 2111, 2084, 2061,
    2074, 2044, 2015, 2016, 1998, 1991, 1981, 1956, 1935, 1927,
    1941, 1939, 1941, 1945, 1935, 1929, 1921, 1931, 1951, 1963,
    1973, 1961, 1974, 1980, 2001, 2018, 2038, 2040, 2040, 2045,
    2053, 2057, 2095, 2111, 2127, 2119, 2098, 2098, 2103, 2105,
    2114, 2122, 2130, 2122, 2107, 2103, 2084, 2093, 2100, 2099,
    2103, 2083, 2075, 2074, 2061, 2078, 2069, 2059, 2052, 2031,
    2027, 2028, 2014, 2040, 2030, 2027, 2021, 2006, 2000, 2007,
    2019, 2025, 2030, 2031, 2021, 2029, 2032, 2026, 2045, 2049,
    2047, 2050, 2048, 2052, 2055, 2055, 2066, 2079, 2065, 2069,
    2054, 2062, 2055, 2060, 2063, 2066, 2056, 2061, 2050, 2055,
    2047, 2056, 2054, 2057, 2057, 2050, 2049, 2054, 2054, 2055,
    2052, 2052, 2049, 2049, 2044, 2040, 2047, 2044, 2040, 2040,
    2038, 2036, 2034, 2033, 2036, 2040, 2040, 2042, 2046, 2039,
    2043, 2043, 2048, 2054, 2057, 2057, 2060, 2057, 2063, 2061,
    2060, 2063, 2063, 2061, 2058, 2058, 2058, 2054, 2052, 2052,
    2046, 2046, 2044, 2044, 2045, 2043, 2042, 2041, 2042, 2042,
    2044, 2045, 2045, 2046, 2047, 2045, 2043, 2044, 2043, 2041,
    2042, 2042, 2043, 2044, 2041, 2042, 2040, 2041, 2043, 2048,
    2047, 2050, 2050, 2050, 2051, 2052, 2056, 2060, 2058, 2060,
    2057, 2059, 2059, 2060, 2062, 2060, 2059, 2056, 2053, 2053,
    2051, 2050, 2051, 2046, 2046, 2044, 2043, 2041, 2044, 2040,
    2043, 2042, 2041, 2042, 2043, 2043, 2045, 2045, 2043, 2043,
    2044, 2042, 2044, 2043, 2045, 2046, 2045, 2044, 2044, 2043,
    2045, 2045, 2049, 2050, 2051, 2053, 2054, 2053, 2055, 2056,
    2057, 2059, 2060, 2059, 2059, 2058, 2058, 2058, 2059, 2058,
    2057, 2056, 2053, 2051, 2050, 2047, 2048, 2047, 2044, 2043,
    2041, 2040, 2040, 2042, 2040, 2039, 2039, 2038, 2040, 2042,
    2043, 2045, 2044, 2043, 2042, 2043, 2042, 2044, 2044, 2045,
    2044, 2045, 2044, 2045, 2047, 2048, 2049, 2049, 2049, 2050,
    2051, 2051, 2053, 2053, 2055, 2055, 2054, 2055, 2054, 2055,
    2056, 2055, 2054, 2054, 2052, 2052, 2051, 2049, 2049, 2047,
    2047, 2044, 2044, 2043, 2041, 2042, 2041, 2042, 2041, 2042,
    2041, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2044, 2043,
    2044, 2043, 2044, 2044, 2044, 2044, 2044, 2045, 2045, 2046,
    2046, 2046, 2046, 2047, 2047, 2047, 2048, 2048, 2048, 2049,
    2048, 2048, 2048, 2048, 2049, 2048, 2048, 2048, 2046, 2046,
    2045, 2045, 2045, 2044, 2044, 2042, 2042, 2042, 2042, 2042,
    2043, 2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043,
    2045, 2044, 2045, 2044, 2045, 2045, 2046, 2046, 2045, 2046,
    2046, 2046, 2045, 2046, 2045, 2046, 2045, 2046, 2046, 2046,
    2046, 2047, 2047, 2049, 2048, 2049, 2048, 2049, 2050, 2050,
    2050, 2050, 2049, 2049, 2049, 2049, 2049, 2048, 2049, 2048,
    2048, 2048, 2048, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
    2047, 2048, 2048, 2049, 2049, 2049, 2049, 2050, 2050, 2050,
    2050, 2050, 2050, 2050, 2050, 2049, 2049, 2050, 2049, 2049,
    2049, 2049, 2049, 2049, 2050, 2050, 2050, 2050, 2050, 2050,
    2051, 2051, 2051, 2051, 2051, 2050, 2051, 2051, 2051, 2051,
    2050, 2050, 2050, 2049, 2049, 2048, 2048, 2049, 2047, 2048,
    2047, 2047, 2047, 2047, 2048, 2047, 2048, 2047, 2048, 2048,
    2048, 2049, 2049, 2048, 2048, 2047, 2048, 2048, 2048, 2049,
    2048, 2048, 2047, 2048, 2046, 2046, 2048, 2046, 2047, 2049,
    2050, 2051, 2052, 2049, 2048, 2045, 2046, 2050, 2048, 2056,
    2055, 2054, 2049, 2044, 2044, 2047, 2050, 2054, 2057, 2056,
    2052, 2045, 2045, 2047, 2052, 2052, 2051, 2047, 2042, 2045,
    2049, 2055, 2059, 2057, 2052, 2044, 2034, 2038, 2044, 2050,
    2064, 2075, 2072, 2069, 2054, 2031, 2042, 2039, 2041, 2063,
    2076, 2071, 2082, 2070, 2045, 2035, 2021, 2019, 2054, 2056,
    2059, 2068, 2041, 2042, 2046, 2039, 2050, 2038, 2029, 2036,
    2027, 2046, 2058, 2059, 2067, 2064, 2040, 2037, 2025, 2027,
    2043, 2081, 2070, 2081, 2065, 2046, 2052, 2050, 2042, 2054,
    2025, 2038, 2020, 2038, 2051, 2057, 2065, 2054, 2039, 2042,
    2030, 2028, 2028, 2020, 2042, 2036, 2040, 2066, 2050, 2054,
    2047, 2035, 2040, 2047, 2055, 2076, 2093, 2082, 2066, 2051,
    2010, 2014, 2027, 2038, 2081, 2068, 2077, 2069, 2047, 2043,
    2043, 2035, 2037, 2015, 2023, 2024, 2041, 2039, 2065, 2045,
    2037, 2034, 2020, 2039, 2052, 2063, 2064, 2047, 2041, 2020,
    2032, 2055, 2060, 2075, 2102, 2077, 2063, 2058, 2015, 2030,
    1994, 2025, 2014, 2041, 2026, 2037, 2035, 2062, 2048, 2080,
    2051, 2068, 2031, 2031, 1993, 2008, 1971, 2026, 2000, 2039,
    2033, 2055, 2049, 2101, 2086, 2102, 2100, 2052, 2010, 1976,
    1964, 1958, 2005, 2028, 2077, 2103, 2109, 2111, 2089, 2070,
    2060, 2028, 2034, 2032, 2044, 2019, 2050, 2018, 2042, 2047,
    2065, 2062, 2084, 2049, 2048, 2011, 1992, 2010, 1996, 2040,
    2049, 2044, 2053, 2037, 2044, 2051, 2038, 2060, 2058, 2042,
    2072, 2022, 2033, 2047, 2021, 2040, 2042, 2051, 2061, 2023,
    2025, 2023, 1997, 2027, 2062, 2049, 2071, 2066, 2027, 2031,
    2043, 2019, 2033, 2059, 2041, 2064, 2069, 2064, 2060, 2047,
    2041, 2033, 2047, 2053, 2059, 2059, 2062, 2046, 2021, 2030,
    2041, 2027, 2033, 2043, 2031, 2043, 2045, 2033, 2027, 2072,
    2043, 2054, 2066, 2044, 2034, 2054, 2012, 2035, 2054, 2050,
    2043, 2053, 2033, 2059, 2028, 2040, 2038, 2042, 2023, 2064,
    2013, 2034, 2029, 1999, 2032, 2068, 2066, 2067, 2091, 2060,
    2048, 2026, 2034, 2057, 2064, 2069, 2070, 2053, 2061, 1998,
    1965, 1998, 2030, 2015, 2098, 2063, 2082, 2051, 2026, 2017,
    2042, 2056, 2084, 2087, 2104, 2083, 2049, 2024, 1997, 2005,
    2008, 2077, 2126, 2130, 2101, 2045, 1975, 1962, 1958, 2006,
    2047, 2113, 2093, 2104, 2085, 2055, 2019, 2022, 2032, 2048,
    2063, 2116, 2082, 2055, 2001, 1989, 1988, 2027, 2045, 2058,
    2114, 2082, 2057, 2010, 2016, 1987, 1992, 2057, 2062, 2073,
    2077, 2018, 2030, 2025, 2025, 2024, 2087, 2098, 2097, 2084,
    2078, 2034, 2010, 1972, 1980, 2046, 2073, 2135, 2133, 2117,
    2097, 2003, 1966, 1987, 1949, 1978, 2015, 2049, 2086, 2137,
    2078, 2054, 2007, 1998, 2000, 2008, 2011, 2040, 2045, 2059,
    2073, 2066, 2093, 2085, 2052, 2059, 2049, 2019, 2043, 1989,
    2030, 2032, 2033, 2057, 2086, 2086, 2062, 2031, 1980, 1956,
    1982, 1994, 2053, 2098, 2076, 2079, 2082, 2060, 2063, 1996,
    1975, 1994, 1954, 2003, 2082, 2121, 2196, 2120, 2057, 2001,
    1928, 1890, 1901, 1970, 2079, 2139, 2169, 2167, 2094, 2029,
    1952, 1959, 1950, 1987, 2001, 2076, 2124, 2151, 2088, 2031,
    1981, 1954, 1985, 1998, 2086, 2090, 2112, 2086, 2083, 2021,
    1979, 1973, 1980, 2038, 2079, 2085, 2116, 2123, 2136, 2089,
    2029, 1947, 1934, 1908, 2046, 2077, 2127, 2197, 2165, 2125,
    2047, 1949, 1953, 1940, 1965, 2030, 2066, 2140, 2180, 2116,
    2114, 2094, 2034, 1992, 1945, 1958, 2059, 2104, 2112, 2113,
    2066, 2045, 1979, 2003, 1988, 2043, 2044, 2107, 2125, 2171,
    2073, 2041, 1980, 1947, 1999, 2016, 2098, 2147, 2131, 2134,
    2080, 2050, 2020, 1973, 1980, 2013, 2026, 2071, 2032, 2056,
    2040, 2047, 2085, 2112, 2104, 2085, 2003, 2042, 2033, 2006,
    2038, 2014, 2031, 2123, 2119, 2187, 2160, 2074, 1998, 1992,
    1953, 2007, 2032, 2033, 2116, 2124, 2140, 2069, 2055, 2013,
    1999, 2030, 1971, 2018, 2013, 2032, 2057, 2120, 2124, 2173,
    2119, 2044, 2015, 1950, 1966, 1983, 1991, 2061, 2104, 2165,
    2130, 2103, 2058, 1998, 1955, 1979, 1904, 1972, 2032, 2057,
    2121, 2208, 2159, 2151, 2050, 1944, 1949, 1901, 1920, 2016,
    2110, 2147, 2234, 2176, 2136, 2096, 1980, 1938, 1904, 1934,
    1966, 2025, 2089, 2139, 2155, 2166, 2053, 2008, 1958, 1920,
    1955, 2002, 2042, 2110, 2121, 2127, 2131, 2065, 2063, 1990,
    1977, 1943, 1984, 2027, 2063, 2096, 2143, 2104, 2121, 2078,
    2045, 2032, 1997, 1984, 2010, 2028, 2058, 2055, 2100, 2070,
    2055, 2062, 2047, 2044, 2045, 2009, 2036, 2056, 2010, 2026,
    2019, 2044, 2055, 2058, 2067, 2072, 2070, 2057, 2043, 2022,
    2031, 2011, 2034, 2041, 2070, 2089, 2105, 2084, 2057, 2011,
    1990, 1996, 2006, 2036, 2034, 2065, 2109, 2117, 2072, 2038,
    2005, 2017, 2006, 2034, 2069, 2079, 2114, 2099, 2074, 2081,
    2043, 2012, 2011, 2024, 2033, 2041, 2039, 2050, 2033, 2094,
    2074, 2075, 2072, 2036, 2011, 2036, 2007, 2023, 2003, 2022,
    2054, 2080, 2090, 2092, 2048, 2011, 1974, 1958, 1967, 1993,
    2037, 2037, 2091, 2133, 2108, 2097, 2074, 2015, 2025, 2016,
    1998, 2037, 2059, 2064, 2093, 2116, 2116, 2093, 2081, 2041,
    2053, 2021, 2009, 2005, 2010, 2031, 2079, 2112, 2122, 2119,
    2063, 2047, 1999, 2006, 1973, 1974, 2005, 2050, 2066, 2108,
    2086, 2077, 2044, 2015, 1979, 1980, 2007, 2036, 2060, 2104,
    2110, 2100, 2081, 2038, 2004, 2007, 1993, 2015, 2051, 2101,
    2122, 2122, 2111, 2090, 2049, 2000, 1983, 1983, 2005, 2043,
    2064, 2107, 2126, 2128, 2104, 2068, 2031, 1978, 1961, 1976,
    2007, 2027, 2088, 2096, 2121, 2098, 2066, 2028, 1996, 1975,
    1976, 1995, 2048, 2072, 2085, 2091, 2074, 2049, 2037, 2025,
    2013, 2030, 2048, 2055, 2070, 2082, 2062, 2072, 2065, 2044,
    2044, 2049, 2058, 2066, 2089, 2087, 2091, 2107, 2089, 2079,
    2073, 2061, 2059, 2074, 2067, 2078, 2075, 2077, 2043, 2028,
    2017, 1984, 1990, 1987, 1993, 1991, 1992, 1982, 1975, 1944,
    1930, 1914, 1918, 1923, 1948, 1981, 2003, 2022, 2035, 2031,
    2022, 2006, 2016, 2026, 2071, 2126, 2176, 2216, 2233, 2241,
    2216, 2192, 2197, 2171, 2199, 2230, 2243, 2295, 2292, 2262,
    2260, 2191, 2134, 2099, 2074, 2071, 2065, 2080, 2070, 2026,
    1987, 1890, 1815, 1765, 1704, 1695, 1719, 1728, 1741, 1762,
    1754, 1729, 1727, 1742, 1755, 1822, 1869, 1947, 2029, 2101,
    2144, 2190, 2224, 2259, 2284, 2336, 2368, 2381, 2427, 2420,
    2432, 2423, 2419, 2424, 2415, 2408, 2401, 2377, 2341, 2272,
    2232, 2190, 2145, 2091, 2077, 2021, 1941, 1865, 1790, 1705,
    1652, 1597, 1575, 1581, 1580, 1574, 1580, 1594, 1588, 1598,
    1647, 1741, 1805, 1919, 1990, 2079, 2138, 2165, 2175, 2234,
    2269, 2303, 2378, 2431, 2454, 2473, 2461, 2437, 2412, 2390,
    2386, 2395, 2427, 2413, 2420, 2410, 2347, 2275, 2231, 2157,
    2116, 2070, 2049, 1982, 1907, 1823, 1734, 1647, 1590, 1494,
    1491, 1495, 1479, 1515, 1523, 1562, 1553, 1595, 1651, 1725,
    1814, 1919, 1999, 2114, 2152, 2199, 2219, 2262, 2284, 2310,
    2360, 2409, 2413, 2429, 2429, 2393, 2386, 2367, 2371, 2386,
    2404, 2407, 2418, 2412, 2382, 2322, 2269, 2214, 2151, 2108,
    2069, 1996, 1934, 1840, 1771, 1686, 1614, 1552, 1502, 1488,
    1494, 1499, 1535, 1551, 1580, 1623, 1675, 1735, 1807, 1905,
    1991, 2062, 2121, 2181, 2199, 2242, 2259, 2311, 2346, 2369,
    2390, 2409, 2394, 2383, 2345, 2370, 2357, 2367, 2383, 2380,
    2402, 2386, 2348, 2337, 2265, 2221, 2185, 2138, 2115, 2061,
    1973, 1896, 1818, 1701, 1645, 1570, 1522, 1517, 1504, 1501,
    1530, 1533, 1559, 1592, 1654, 1718, 1817, 1904, 2001, 2080,
    2150, 2193, 2214, 2245, 2270, 2295, 2333, 2342, 2395, 2366,
    2384, 2334, 2317, 2312, 2294, 2283, 2351, 2356, 2368, 2378,
    2344, 2339, 2289, 2245, 2229, 2190, 2147, 2095, 2008, 1957,
    1842, 1741, 1669, 1588, 1558, 1506, 1516, 1508, 1495, 1537,
    1518, 1566, 1632, 1675, 1769, 1868, 1962, 2046, 2112, 2162,
    2200, 2232, 2258, 2287, 2319, 2352, 2359, 2356, 2357, 2312,
    2278, 2269, 2281, 2293, 2303, 2368, 2375, 2381, 2380, 2338,
    2326, 2281, 2247, 2238, 2214, 2180, 2083, 2006, 1929, 1801,
    1703, 1663, 1596, 1571, 1536, 1533, 1527, 1501, 1513, 1504,
    1588, 1673, 1711, 1842, 1940, 2031, 2075, 2138, 2167, 2190,
    2228, 2248, 2288, 2329, 2336, 2331, 2331, 2321, 2285, 2231,
    2265, 2292, 2284, 2363, 2343, 2381, 2389, 2341, 2353, 2313,
    2296, 2267, 2221, 2215, 2141, 2032, 1953, 1856, 1733, 1658,
    1599, 1529, 1529, 1494, 1477, 1483, 1474, 1492, 1518, 1603,
    1674, 1779, 1877, 1995, 2053, 2130, 2168, 2213, 2224, 2262,
    2312, 2323, 2357, 2360, 2337, 2342, 2295, 2252, 2266, 2242,
    2293, 2306, 2342, 2384, 2352, 2344, 2348, 2298, 2287, 2286,
    2248, 2234, 2163, 2085, 1984, 1894, 1806, 1697, 1680, 1590,
    1567, 1514, 1501, 1475, 1469, 1505, 1528, 1610, 1678, 1762,
    1841, 1927, 2020, 2079, 2134, 2229, 2239, 2309, 2303, 2310,
    2339, 2362, 2342, 2366, 2365, 2335, 2342, 2271, 2325, 2296,
    2331, 2371, 2372, 2404, 2367, 2325, 2301, 2256, 2227, 2184,
    2152, 2084, 1986, 1903, 1794, 1702, 1633, 1583, 1543, 1527,
    1476, 1464, 1466, 1507, 1517, 1600, 1681, 1758, 1848, 1915,
    1997, 2044, 2137, 2180, 2247, 2292, 2313, 2316, 2334, 2344,
    2312, 2374, 2344, 2345, 2339, 2327, 2337, 2309, 2349, 2353,
    2379, 2376, 2333, 2336, 2295, 2265, 2212, 2183, 2142, 2039,
    1971, 1865, 1803, 1722, 1667, 1626, 1592, 1532, 1521, 1480,
    1501, 1523, 1548, 1658, 1690, 1800, 1822, 1913, 1985, 2024,
    2114, 2177, 2235, 2292, 2305, 2340, 2347, 2356, 2374, 2364,
    2397, 2379, 2388, 2359, 2377, 2363, 2365, 2392, 2349, 2369,
    2344, 2277, 2268, 2218, 2197, 2139, 2064, 2003, 1921, 1838,
    1773, 1714, 1673, 1645, 1565, 1551, 1518, 1509, 1535, 1560,
    1620, 1669, 1714, 1779, 1845, 1890, 1974, 2030, 2112, 2169,
    2209, 2266, 2292, 2323, 2345, 2378, 2407, 2412, 2419, 2432,
    2412, 2419, 2383, 2406, 2401, 2379, 2359, 2316, 2290, 2224,
    2197, 2147, 2121, 2045, 1990, 1917, 1854, 1794, 1750, 1720,
    1683, 1661, 1616, 1595, 1566, 1591, 1606, 1640, 1685, 1714,
    1766, 1800, 1838, 1882, 1948, 1999, 2059, 2110, 2147, 2192,
    2200, 2222, 2259, 2276, 2318, 2321, 2347, 2355, 2338, 2333,
    2323, 2326, 2332, 2311, 2300, 2279, 2240, 2212, 2177, 2166,
    2125, 2103, 2065, 2021, 2005, 1957, 1951, 1939, 1918, 1917,
    1893, 1882, 1876, 1872, 1881, 1887, 1903, 1901, 1916, 1918,
    1925, 1937, 1946, 1966, 1977, 1994, 2003, 2011, 2022, 2031,
    2049, 2054, 2077, 2080, 2095, 2096, 2111, 2116, 2130, 2135,
    2147, 2152, 2146, 2155, 2148, 2150, 2157, 2147, 2153, 2142,
    2131, 2124, 2115, 2107, 2101, 2093, 2088, 2077, 2065, 2056,
    2050, 2042, 2042, 2034, 2032, 2022, 2015, 2012, 2004, 2005,
    2001, 2000, 1996, 1994, 1989, 1991, 1988, 1995, 1995, 2003,
    2002, 2013, 2014, 2021, 2033, 2032, 2052, 2051, 2063, 2072,
    2069, 2082, 2079, 2091, 2091, 2091, 2097, 2091, 2094, 2091,
    2087, 2088, 2086, 2085, 2085, 2078, 2080, 2076, 2077, 2073,
    2077, 2074, 2070, 2068, 2058, 2060, 2048, 2048, 2041, 2038,
    2033, 2026, 2021, 2019, 2011, 2014, 2014, 2009, 2014, 2009,
    2013, 2012, 2014, 2017, 2021, 2026, 2026, 2033, 2032, 2039,
    2041, 2044, 2047, 2052, 2051, 2055, 2052, 2058, 2057, 2059,
    2061, 2060, 2065, 2063, 2065, 2067, 2068, 2069, 2069, 2069,
    2067, 2067, 2063, 2060, 2059, 2055, 2051, 2049, 2042, 2041,
    2034, 2034, 2029, 2028, 2026, 2023, 2022, 2020, 2019, 2018,
    2020, 2019, 2022, 2022, 2025, 2027, 2026, 2031, 2031, 2034,
    2036, 2038, 2039, 2040, 2042, 2045, 2046, 2048, 2050, 2050,
    2054, 2054, 2055, 2057, 2058, 2058, 2058, 2058, 2056, 2056,
    2054, 2053, 2052, 2051, 2049, 2047, 2044, 2042, 2040, 2037,
    2035, 2033, 2032, 2032, 2029, 2030, 2029, 2029, 2029, 2030,
    2031, 2033, 2034, 2035, 2035, 2036, 2038, 2038, 2038, 2039,
    2040, 2040, 2042, 2042, 2044, 2046, 2047, 2047, 2049, 2049,
    2050, 2051, 2052, 2054, 2054, 2054, 2055, 2053, 2053, 2052,
    2052, 2053, 2052, 2051, 2050, 2049, 2047, 2046, 2044, 2043,
    2043, 2042, 2042, 2041, 2041, 2041, 2041, 2042, 2042, 2043,
    2043, 2044, 2044, 2045, 2046, 2045, 2046, 2045, 2047, 2047,
    2047, 2048, 2049, 2050, 2050, 2050, 2051, 2052, 2052, 2053,
    2053, 2053, 2053, 2052, 2053, 2052, 2052, 2054, 2053, 2053,
    2053, 2053, 2052, 2051, 2051, 2051, 2050, 2051, 2049, 2049,
    2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050, 2051, 2050,
    2050, 2050, 2050, 2050, 2050, 2050, 2050, 2051, 2052, 2052,
    2054, 2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
    2054, 2053, 2053, 2052, 2052, 2052, 2051, 2051, 2051, 2050,
    2050, 2051, 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051,
    2052, 2052, 2053, 2053, 2053, 2053, 2054, 2053, 2054, 2053,
    2054, 2053, 2053, 2054, 2054, 2055, 2055, 2056, 2055, 2058,
    2057, 2057, 2058, 2056, 2057, 2056, 2055, 2054, 2054, 2052,
    2051, 2050, 2049, 2048, 2047, 2047, 2045, 2046, 2046, 2044,
    2044, 2045, 2044, 2045, 2046, 2045, 2046, 2048, 2045, 2048,
    2048, 2047, 2046, 2052, 2045, 2052, 2049, 2050, 2051, 2047,
    2053, 2052, 2051, 2056, 2052, 2055, 2055, 2057, 2055, 2055,
    2056, 2052, 2057, 2055, 2056, 2054, 2048, 2054, 2047, 2046,
    2046, 2053, 2047, 2054, 2048, 2044, 2052, 2040, 2045, 2045,
    2033, 2048, 2042, 2042, 2042, 2044, 2063, 2050, 2050, 2046,
    2048, 2055, 2052, 2046, 2041, 2046, 2054, 2057, 2046, 2048,
    2063, 2051, 2060, 2043, 2052, 2061, 2047, 2042, 2045, 2061,
    2055, 2052, 2045, 2058, 2036, 2033, 2062, 2050, 2051, 2057,
    2035, 2064, 2045, 2058, 2050, 2040, 2060, 2024, 2049, 2058,
    2041, 2044, 2045, 2040, 2049, 2054, 2046, 2047, 2062, 2057,
    2047, 2050, 2040, 2064, 2047, 2041, 2046, 2047, 2075, 2051,
    2056, 2062, 2050, 2051, 2049, 2043, 2051, 2049, 2042, 2055,
    2045, 2048, 2054, 2046, 2051, 2029, 2052, 2056, 2029, 2059,
    2050, 2048, 2050, 2041, 2046, 2041, 2049, 2051, 2030, 2061,
    2038, 2059, 2042, 2054, 2052, 2042, 2060, 2047, 2048, 2058,
    2054, 2050, 2062, 2058, 2040, 2053, 2062, 2025, 2051, 2062,
    2035, 2058, 2061, 2034, 2057, 2055, 2039, 2047, 2049, 2045,
    2051, 2049, 2055, 2045, 2051, 2034, 2063, 2044, 2029, 2076,
    2026, 2068, 2043, 2044, 2055, 2042, 2056, 2036, 2059, 2038,
    2036, 2059, 2048, 2049, 2074, 2034, 2048, 2067, 2006, 2079,
    2033, 2056, 2043, 2016, 2084, 2023, 2032, 2054, 2030, 2040,
    2057, 2031, 2072, 2023, 2067, 2026, 2026, 2066, 2006, 2077,
    2036, 2064, 2002, 2078, 2036, 2050, 2044, 2063, 2018, 2027,
    2087, 1979, 2085, 2005, 2107, 1984, 2051, 2068, 1995, 2115,
    1996, 2057, 2042, 2082, 1974, 2089, 2046, 1979, 2092, 1979,
    2127, 1967, 2064, 2063, 2022, 2070, 2019, 2070, 2029, 2119,
    1977, 2072, 2044, 2058, 2018, 2042, 2056, 1993, 2105, 2025,
    2060, 2010, 2078, 2030, 2031, 2054, 2046, 2024, 2084, 2023,
    2027, 2060, 2049, 2044, 1980, 2138, 1940, 2092, 2027, 2059,
    2046, 2035, 2040, 2062, 2039, 2020, 2122, 1957, 2132, 2002,
    2035, 2123, 1987, 2066, 2061, 1998, 2071, 2040, 2046, 2033,
    2087, 1949, 2161, 1948, 2076, 2020, 2070, 2021, 2004, 2079,
    2009, 2064, 2039, 2018, 2040, 2093, 2027, 2025, 2022, 2086,
    2008, 2005, 2084, 1995, 2032, 2076, 1990, 2072, 2032, 2048,
    2044, 1987, 2121, 1963, 2081, 2109, 1876, 2098, 2142, 1892,
    2148, 2026, 1994, 2124, 1971, 2080, 1987, 2123, 1893, 2137,
    1982, 2087, 1931, 2096, 2022, 2063, 1966, 2135, 1996, 2043,
    2176, 1888, 2082, 2140, 1846, 2122, 2073, 2010, 1993, 2147,
    1962, 2069, 2082, 1941, 2129, 2011, 2027, 2150, 1873, 2253,
    1964, 1965, 2123, 2034, 2028, 2036, 2141, 1903, 2205, 1896,
    2173, 1934, 2128, 1955, 2107, 2011, 2056, 2101, 1885, 2251,
    1890, 2060, 2139, 1975, 2052, 2092, 2091, 2008, 2029, 2199,
    1817, 2231, 1952, 2095, 1977, 2106, 2074, 1873, 2339, 1806,
    2235, 1891, 2196, 1935, 2094, 2099, 1926, 2037, 2191, 1811,
    2278, 1997, 2008, 2081, 2093, 1983, 2075, 2052, 1969, 2135,
    1912, 2227, 1777, 2246, 2017, 1932, 2231, 1867, 2225, 1869,
    2213, 2033, 1894, 2253, 1917, 1996, 2102, 1999, 2107, 1901,
    2193, 1948, 2057, 2072, 2003, 2074, 2025, 2107, 1886, 2215,
    1934, 2007, 2095, 2007, 2082, 1975, 2097, 2043, 2044, 2071,
    1971, 2074, 2109, 2000, 1947, 2124, 2029, 2039, 2016, 2026,
    2067, 2049, 1983, 2159, 1839, 2339, 1828, 2153, 1918, 2175,
    2009, 1998, 2072, 1985, 2114, 2016, 2069, 1954, 2176, 2064,
    1909, 2233, 1925, 2080, 2024, 2149, 1912, 2086, 2106, 1953,
    2071, 2182, 1866, 2203, 1959, 2132, 1937, 2215, 1853, 2245,
    1904, 2061, 2227, 1770, 2333, 1839, 2095, 2186, 1943, 2071,
    2076, 1951, 2199, 1960, 2061, 2076, 2030, 2072, 2065, 1871,
    2224, 2077, 1863, 2247, 1852, 2301, 1848, 2064, 2189, 1814,
    2397, 1648, 2331, 1924, 2088, 2022, 2133, 1967, 2108, 2039,
    2011, 2087, 2066, 1984, 2200, 1864, 2217, 1946, 2028, 2234,
    1842, 2078, 2145, 2049, 1924, 2198, 1928, 2116, 2064, 1954,
    2150, 1995, 2058, 2079, 1942, 2212, 1957, 2006, 2172, 1957,
    2102, 2039, 2077, 2023, 2061, 2062, 2084, 2035, 2061, 2031,
    2095, 1999, 2124, 1987, 2028, 2070, 2118, 2025, 1992, 2073,
    2112, 1981, 2087, 2076, 1971, 2129, 1963, 2102, 2031, 2051,
    2083, 1924, 2141, 2071, 1955, 2189, 1854, 2186, 2091, 1955,
    2041, 2087, 2017, 2182, 1783, 2323, 1965, 1969, 2134, 2015,
    2120, 2031, 1888, 2243, 1988, 1967, 2230, 1902, 2040, 2215,
    1880, 2017, 2152, 1991, 2064, 1951, 2185, 1989, 1973, 2167,
    2005, 2042, 2086, 1999, 2039, 2183, 1902, 2057, 2091, 2035,
    2052, 2032, 2045, 2087, 2046, 1965, 2139, 2039, 2023, 1990,
    2055, 2234, 1800, 2145, 2046, 2035, 2043, 2123, 1974, 2077,
    2128, 1843, 2152, 2087, 2001, 1988, 2046, 2141, 2018, 1912,
    2170, 1950, 2083, 2149, 1911, 2087, 2090, 2069, 1914, 2139,
    2099, 2038, 1930, 2101, 2123, 1961, 2105, 2024, 1965, 2206,
    1955, 2024, 2013, 2202, 1867, 2074, 2088, 2061, 2001, 2038,
    2107, 2040, 1939, 2132, 1989, 2055, 2123, 1998, 1968, 2153,
    1990, 2100, 1943, 2109, 2052, 1956, 2160, 2011, 1995, 2081,
    1985, 2091, 2096, 1927, 2100, 1942, 2122, 2114, 1996, 2014,
    2100, 1895, 2184, 2105, 1945, 2079, 2007, 2158, 1932, 2160,
    2097, 1916, 2100, 2097, 2044, 2043, 2065, 1990, 2110, 2071,
    2002, 1979, 2160, 2020, 2036, 2100, 1984, 2050, 2078, 1993,
    2079, 2064, 1991, 2020, 2046, 2084, 2119, 1888, 2116, 2000,
    2152, 2024, 1961, 2118, 2064, 2003, 2134, 2017, 2072, 2038,
    2093, 2065, 2060, 2122, 1950, 2078, 2112, 2111, 1993, 1989,
    2118, 2123, 1971, 2056, 2011, 2061, 2105, 2013, 1969, 2050,
    2017, 2047, 2040, 2032, 1972, 1945, 2050, 2025, 1975, 2012,
    2089, 1869, 2053, 2018, 2061, 2009, 2020, 2054, 2063, 2105,
    2095, 2070, 2189, 2127, 2112, 2171, 2232, 2243, 2130, 2156,
    2282, 2212, 2153, 2150, 2202, 2194, 2088, 2050, 2099, 2085,
    1976, 1968, 1901, 1974, 1856, 1795, 1780, 1870, 1791, 1697,
    1787, 1744, 1786, 1725, 1850, 1835, 1820, 1884, 1932, 1989,
    2010, 2038, 2106, 2219, 2211, 2206, 2342, 2317, 2366, 2344,
    2494, 2482, 2367, 2400, 2417, 2501, 2356, 2336, 2359, 2275,
    2230, 2175, 2161, 2109, 1963, 1978, 1924, 1884, 1791, 1758,
    1727, 1690, 1660, 1606, 1577, 1623, 1599, 1600, 1618, 1628,
    1620, 1727, 1772, 1783, 1836, 1866, 1990, 1959, 2112, 2143,
    2157, 2242, 2287, 2391, 2431, 2365, 2434, 2508, 2560, 2536,
    2493, 2487, 2495, 2575, 2480, 2385, 2352, 2363, 2305, 2255,
    2137, 2143, 2011, 1991, 1966, 1833, 1857, 1728, 1691, 1658,
    1648, 1611, 1545, 1514, 1515, 1556, 1603, 1580, 1488, 1584,
    1721, 1791, 1751, 1702, 1866, 2004, 2057, 2038, 2068, 2204,
    2296, 2294, 2398, 2432, 2474, 2464, 2487, 2650, 2568, 2546,
    2465, 2579, 2620, 2516, 2412, 2338, 2438, 2371, 2272, 2166,
    2060, 2111, 2018, 1915, 1912, 1814, 1744, 1668, 1673, 1674,
    1558, 1536, 1513, 1482, 1589, 1532, 1505, 1523, 1593, 1691,
    1704, 1719, 1757, 1821, 1975, 2029, 2005, 2082, 2120, 2295,
    2336, 2329, 2423, 2448, 2480, 2534, 2566, 2604, 2518, 2553,
    2588, 2587, 2549, 2473, 2449, 2413, 2398, 2305, 2267, 2188,
    2056, 2031, 2049, 1939, 1884, 1745, 1778, 1697, 1675, 1614,
    1534, 1594, 1508, 1522, 1494, 1541, 1550, 1526, 1611, 1660,
    1667, 1754, 1745, 1855, 1931, 1985, 2032, 2068, 2124, 2256,
    2320, 2356, 2406, 2385, 2509, 2507, 2597, 2566, 2524, 2556,
    2591, 2583, 2527, 2494, 2445, 2408, 2376, 2328, 2262, 2159,
    2076, 2022, 2010, 1986, 1812, 1784, 1667, 1709, 1676, 1555,
    1498, 1484, 1469, 1493, 1459, 1473, 1419, 1480, 1579, 1557,
    1614, 1619, 1711, 1785, 1889, 1912, 1945, 2046, 2143, 2171,
    2300, 2328, 2388, 2454, 2478, 2544, 2623, 2564, 2617, 2633,
    2660, 2656, 2561, 2608, 2547, 2526, 2484, 2360, 2353, 2297,
    2186, 2129, 2058, 2020, 1914, 1875, 1798, 1699, 1700, 1641,
    1568, 1552, 1508, 1502, 1489, 1527, 1491, 1475, 1569, 1596,
    1647, 1648, 1675, 1843, 1868, 1943, 1947, 2034, 2161, 2181,
    2272, 2312, 2383, 2439, 2498, 2520, 2595, 2559, 2598, 2637,
    2626, 2642, 2567, 2576, 2556, 2482, 2504, 2386, 2312, 2295,
    2231, 2160, 2034, 1993, 1933, 1897, 1826, 1706, 1621, 1630,
    1610, 1527, 1400, 1451, 1427, 1436, 1412, 1364, 1424, 1422,
    1539, 1537, 1567, 1570, 1692, 1846, 1847, 1875, 1962, 2049,
    2196, 2207, 2267, 2331, 2400, 2531, 2516, 2565, 2599, 2608,
    2632, 2696, 2653, 2643, 2595, 2599, 2614, 2522, 2465, 2378,
    2351, 2336, 2220, 2127, 2072, 1973, 1971, 1900, 1814, 1696,
    1660, 1683, 1613, 1557, 1465, 1491, 1497, 1498, 1477, 1456,
    1487, 1543, 1583, 1633, 1657, 1678, 1760, 1881, 1911, 1932,
    2042, 2092, 2178, 2285, 2288, 2348, 2431, 2492, 2535, 2531,
    2617, 2605, 2612, 2653, 2643, 2590, 2602, 2590, 2522, 2485,
    2455, 2388, 2311, 2269, 2188, 2119, 2037, 1997, 1909, 1846,
    1788, 1708, 1698, 1630, 1558, 1519, 1531, 1521, 1483, 1445,
    1482, 1512, 1491, 1548, 1582, 1601, 1654, 1714, 1772, 1877,
    1863, 1909, 2008, 2129, 2152, 2164, 2222, 2329, 2373, 2411,
    2437, 2463, 2503, 2530, 2575, 2553, 2561, 2517, 2551, 2553,
    2535, 2414, 2440, 2389, 2383, 2294, 2245, 2200, 2103, 2101,
    2036, 1975, 1898, 1857, 1822, 1806, 1692, 1694, 1672, 1610,
    1605, 1592, 1575, 1588, 1550, 1564, 1556, 1613, 1658, 1613,
    1660, 1684, 1809, 1810, 1845, 1881, 1942, 2017, 2082, 2127,
    2167, 2239, 2259, 2364, 2401, 2398, 2422, 2483, 2510, 2524,
    2525, 2540, 2494, 2509, 2504, 2465, 2418, 2374, 2376, 2317,
    2282, 2193, 2167, 2107, 2049, 2053, 1972, 1921, 1864, 1848,
    1841, 1779, 1729, 1720, 1728, 1666, 1674, 1675, 1653, 1632,
    1665, 1704, 1636, 1688, 1720, 1732, 1742, 1781, 1844, 1882,
    1881, 1930, 1971, 2034, 2053, 2097, 2176, 2193, 2200, 2291,
    2322, 2323, 2359, 2363, 2425, 2451, 2428, 2433, 2446, 2465,
    2423, 2414, 2400, 2405, 2336, 2306, 2319, 2270, 2200, 2141,
    2147, 2109, 2048, 1960, 1936, 1964, 1892, 1818, 1766, 1809,
    1742, 1707, 1708, 1698, 1686, 1641, 1688, 1685, 1712, 1702,
    1676, 1758, 1793, 1811, 1777, 1859, 1907, 1917, 1935, 1953,
    2069, 2034, 2050, 2102, 2163, 2176, 2161, 2223, 2281, 2283,
    2240, 2306, 2384, 2380, 2332, 2351, 2412, 2413, 2397, 2396,
    2384, 2356, 2353, 2350, 2318, 2293, 2201, 2179, 2196, 2160,
    2053, 2009, 2012, 1981, 1955, 1864, 1876, 1830, 1824, 1807,
    1780, 1791, 1759, 1749, 1778, 1795, 1761, 1751, 1834, 1815,
    1840, 1836, 1863, 1889, 1895, 1916, 1922, 1935, 1962, 1967,
    2009, 2012, 2034, 2014, 2079, 2084, 2110, 2130, 2126, 2159,
    2202, 2209, 2204, 2253, 2250, 2283, 2263, 2306, 2310, 2308,
    2296, 2322, 2299, 2286, 2280, 2268, 2231, 2198, 2177, 2163,
    2142, 2081, 2059, 2034, 2020, 1989, 1975, 1933, 1916, 1906,
    1905, 1897, 1879, 1855, 1884, 1861, 1885, 1880, 1870, 1880,
    1887, 1922, 1902, 1919, 1922, 1943, 1937, 1946, 1975, 1942,
    1975, 1981, 1985, 1996, 1988, 2020, 2017, 2033, 2024, 2056,
    2074, 2077, 2091, 2095, 2124, 2140, 2154, 2173, 2164, 2178,
    2210, 2223, 2217, 2225, 2212, 2215, 2238, 2246, 2201, 2169,
    2198, 2196, 2161, 2141, 2134, 2082, 2085, 2084, 2062, 2018,
    1997, 1996, 2004, 1989, 1957, 1942, 1932, 1958, 1929, 1940,
    1920, 1913, 1922, 1932, 1943, 1920, 1927, 1929, 1956, 1944,
    1951, 1945, 1944, 1956, 1968, 1967, 1979, 1969, 1995, 1992,
    2015, 2012, 2023, 2017, 2045, 2052, 2060, 2075, 2082, 2091,
    2098, 2120, 2119, 2128, 2138, 2146, 2158, 2163, 2167, 2152,
    2161, 2154, 2152, 2147, 2130, 2125, 2119, 2116, 2100, 2090,
    2073, 2058, 2049, 2044, 2038, 2018, 2006, 2002, 1997, 2001,
    1976, 1980, 1975, 1968, 1964, 1991, 1961, 1967, 1963, 1971,
    1977, 1969, 1976, 1963, 1977, 1981, 1991, 1984, 1975, 1995,
    1996, 2016, 2011, 2012, 2018, 2019, 2046, 2043, 2042, 2034,
    2054, 2065, 2074, 2080, 2077, 2077, 2094, 2094, 2100, 2092,
    2095, 2103, 2104, 2097, 2090, 2091, 2082, 2095, 2085, 2075,
    2066, 2067, 2060, 2065, 2050, 2045, 2042, 2033, 2040, 2026,
    2026, 2016, 2012, 2014, 2008, 2008, 1998, 2006, 1996, 1996,
    1987, 1987, 1989, 1988, 1990, 1990, 1988, 1987, 1996, 1999,
    1990, 2008, 2005, 2011, 2019, 2032, 2026, 2029, 2039, 2043,
    2041, 2048, 2057, 2049, 2060, 2066, 2068, 2061, 2064, 2071,
    2062, 2066, 2063, 2068, 2060, 2069, 2072, 2068, 2056, 2062,
    2071, 2064, 2067, 2063, 2059, 2048, 2063, 2054, 2048, 2038,
    2038, 2033, 2031, 2027, 2022, 2022, 2021, 2020, 2022, 2019,
    2017, 2021, 2024, 2020, 2022, 2027, 2027, 2030, 2027, 2025,
    2026, 2031, 2034, 2030, 2032, 2029, 2036, 2039, 2036, 2033,
    2038, 2043, 2039, 2041, 2045, 2042, 2043, 2055, 2049, 2043,
    2044, 2052, 2049, 2046, 2047, 2049, 2046, 2047, 2051, 2041,
    2039, 2042, 2043, 2042, 2040, 2037, 2035, 2041, 2041, 2042,
    2037, 2041, 2035, 2043
};




